﻿//implement PocoTimerImpl
//andycai_sc 2011-05-28

#include "GParallel/GPoco/PocoTimerImpl.h"

PocoTimerImpl::PocoTimerImpl(GTimer* timer) : GTimerImpl(timer)
{
	m_task = new Poco::Util::TimerTaskAdapter<PocoTimerImpl>(*this, &PocoTimerImpl::onTimer);
}

PocoTimerImpl::~PocoTimerImpl()
{
}

void PocoTimerImpl::beginImpl(long millisc)
{
	m_pocoTimer.schedule(m_task, millisc, millisc);
}

void PocoTimerImpl::cancelImpl()
{
	m_task->cancel();
}

void PocoTimerImpl::onTimer(Poco::Util::TimerTask& task)
{
	exec();
}

GTimerImpl* createTimerFromPoco(GTimer* timer)
{
	return new PocoTimerImpl(timer);
}
